146 research outputs found

    A Formal Architectural Description Language based on Symbolic Transition Systems and Modal Logic

    Get PDF
    International audienceComponent Based Software Engineering has now emerged as a discipline for system development. After years of battle between component platforms, the need for means to abstract away from specific implementation details is now recognized. This paves the way for model driven approaches (such as MDE) but also for the more older Architectural Description Language (ADL) paradigm. In this paper we present KADL, an ADL based on the Korrigan formal language which supports the following features: integration of fully formal behaviours and data types, expressive component composition mechanisms through the use of modal logic, specification readability through graphical notations, and dedicated architectural analysis techniques. Key Words: Architectural Description Language, Component Based Software Engineering, Mixed Formal Specifications, Symbolic Transition Systems, Abstract Data Types, Modal Logic Glue, Graphical Notations, Verification

    Formal Model-Based Approaches for the Development of Composite

    Get PDF
    Software engineering (SE) is concerned about techniques and tools to develop software pieces. Structuring and composition techniques have always been a cornerstone in software engineering, from modules in the 70’s to the more recent component and service based approaches. These techniques support the application of the well-known divide-and-conquer approach to software development, and promote the construction of added-value software pieces by reusing existing one. More than providing a theoretical background for software engineering (which is nice, but not our objective here), formal methods (FM) support the development process and enable the automation of the whole, or parts of, the design and programming activities. In this talk, I will first present common principles of software architectures and (Web) service development. Then I will survey some of my recent works in the context of the application of formal methods to service-based software engineering. Three typical applications will be presented: software adaptation, automatic service composition, and verification (testing). Formal methods will be tackled (mainly) from a pragmatic perspective, demonstrating how, translating an issue from the SE domain to the FM domain, let state-of-the art formal verification tools do the work for the software developer.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech

    A Formal and Tool-Equipped Approach for the Integration of State Diagrams and Formal Datatypes

    Get PDF
    International audienceSeparation of concerns or aspects is a way to deal with the increasing complexity of systems. The separate design of models for different aspects also promotes a better reusability level. However, an important issue is then to define means to integrate them into a global model. We present a formal and tool-equipped approach for the integration of dynamic models (behaviors expressed using state diagrams) and static models (formal data types) with the benefit to share advantages of both: graphical user-friendly models for behaviors, formal and abstract models for data types. Integration is achieved in a generic way so that it can deal with both different static specification languages (algebraic specifications, Z, B) and different dynamic specification semantic

    Checking Business Process Evolution

    Get PDF
    International audienceBusiness processes support the modeling and the implementation of software as workflows of local and inter-process activities. Taking over structuring and composition, evolution has become a central concern in software development. We advocate it should be taken into account as soon as the modeling of business processes, which can thereafter be made executable using process engines or model-to-code transformations. We show here that business process evolution needs formal analysis in order to compare different versions of processes, identify precisely the differences between them, and ensure the desired consistency. To reach this objective, we first present a model transformation from the BPMN standard notation to the LNT process algebra. We then propose a set of relations for comparing business processes at the formal model level. With reference to related work, we propose a richer set of comparison primitives supporting renaming, refinement, property- and context-awareness. Thanks to an implementation of our approach that can be used through a Web application, we put the checking of evolution within the reach of business process designers

    Model-based Adaptation of Behavioural Mismatching Components

    Get PDF
    International audienceComponent-Based Software Engineering focuses on the reuse of existing software components. In practice, most components cannot be integrated directly into an application-to-be, because they are incompatible. Software Adaptation aims at generating, as automatically as possible, adaptors to compensate mismatch between component interfaces, and is therefore a promising solution for the development of a real market of components promoting software reuse. In this article, we present our approach for software adaptation which relies on an abstract notation based on synchronous vectors and transition systems for governing adaptation rules. Our proposal is supported by dedicated algorithms that generate automatically adaptor protocols. These algorithms have been implemented in a tool, called Adaptor, that can be used through a user-friendly graphical interface

    Une approche symbolique pour la vérification et le test des chorégraphies de services

    Get PDF
    L'ingénierie orientée services est un nouveau paradigme pour développer des logiciels distribués et collaboratifs. Un tel logiciel se compose de plusieurs entités, appelés services, chacun d'entre eux étant par exemple une application Web, un service Web, ou même un humain. Les services peuvent être développés indépendamment et sont composés pour atteindre quelques exigences. Les chorégraphies de service définissent ces exigences avec une perspective globale, basée sur les interactions entre des participants qui sont implémentés en tant que services. Cette thèse vise à formaliser des problèmes et tente d'élaborer un environnement intégré avec lequel les chorégraphies de services peuvent être développés correctement pour les deux types d'approches de développement: l'approche descendante et l'approche ascendante. Elle consiste à analyser la relation entre une spécification de chorégraphie et une implémentation de la chorégraphie au niveau du modèle et aussi au niveau de l'implémentation réelle. Particulièrement, il s'agit de la composition/décomposition des services, la vérification, et le test de l'implémentation de chorégraphie. Le premier point-clé de notre environnement intégré est de représenter le passage de valeurs entre les services en utilisant la technique symbolique et un solveur SMT. Cette technique nous permet de réduire les faux négatifs et de contourner le problème d'explosion combinatoire de l'espace d'états, ces problèmes sont durs à l'abstraction et à l'énumération des valeurs pour les approches existantes basées données. Le second point-clé est le test passif boîte noire de l'implémentation de chorégraphie. Il ne nécessite pas d'accéder au code source, ni de rendre indisponible l'implémentation pendant le processus de test. Notre environnement intégré est mis en œuvre dans nos outils qui sont disponibles en téléchargement ou à utiliser en ligne à l adresse http://schora.lri.fr.Service-oriented engineering is an emerging software development paradigm for distributed collaborative applications. Such an application is made up of several entities abstracted as services, each of them being for example a Web application, a Web service, or even a human. The services can be developed independently and are composed to achieve common requirements through interactions among them. Service choreographies define such requirements from a global perspective, based on interactions among a set of participants. This thesis aims to formalize the problems and attempts to develop a framework by which service choreographies can be developed correctly for both top-down and bottom-up approaches. It consists in analyzing the relation between a choreography specification and a choreography implementation at both model level and real implementation level. Particularly, it concerns the composition/decomposition service design, the verification, and the testing of choreography implementation. The first key point of our framework is to support value-passing among services by using symbolic technique and SMT solver. It overcomes false negatives or state space explosion issues due by abstracting or limiting the data domain of value-passing in existing approaches. The second key point is the black-box passive testing of choreography implementation. It does not require neither to access to source codes nor to make the implementation unavailable during the testing process. Our framework is fully implemented in our toolchains, which can be downloaded or used online at address: http://schora.lri.fr.PARIS11-SCD-Bib. électronique (914719901) / SudocSudocFranceF

    KORRIGAN : un formalisme et une méthode pour la spécification formelle et structurée de systèmes mixtes

    No full text
    The use of formal specifications is quite knowledgeable, in particular when developing safety critical systems. The aim of mixed specifications is to allow one to express the different aspects present in these systems, i.e. static (datatypes), dynamic (behaviour), and composition (architecture, concurrency and communication). The complexity of real size applications requires that structuring means for mixed specifications should be defined. This is why we present a model based on a hierarchy of structures that we call views, together with KORRIGAN, the associated formal language. Views integrate symbolic transition systems, algebraic specifications, and a form of temporal logic. They allow one to specify the different aspects in a unified way. They are expressive, readable, and promote the component definition at a high level of abstraction. Our model comprises three different means for structuring specifications. The basic aspects (static and dynamic) of the components are defined within the internal structuring. The different kinds of composition (integration of aspects, concurrent composition of communicating components) are defined in a unified way within the external structuring. Components may be reused through a simple form of inheritance structuring. To put formal methods into practice, it is important that they should be equipped with an appropriate method. To this end we propose a method for writing mixed and structured specifications that may be used for KORRIGAN but also for other mixed specification formalisms. Finally the ASK toolbox that is dedicated to mixed specification in KORRIGAN is described. ASK comprises verification means for KORRIGAN specifications through translation and object-oriented code generation.L’emploi des spécifications formelles est d’une grande importance, tout particulièrement pour le développement de systèmes dits sécuritaires ou critiques. Les spécifications mixtes ont pour but de permettre l’expression des différents aspects que peuvent présenter ces systèmes : statique (types de données), dynamiques (comportements) et composition (architecture, concurrence et communication). La complexité des systèmes de taille réelle rend indispensable la définition de moyens de structuration des spécifications mixtes. Pour cela, nous proposons un modèle basé sur une hiérarchie de structures que nous appelons vues, ainsi que KORRIGAN, le langage formel associé. Les vues intègrent des systèmes de transition symboliques, des spécifications algébriques et une forme de logique temporelle. Elles permettent la spécification des différents aspects de façon unifiée. Elles sont expressives, lisibles et favorisent la définition de composants à un haut niveau d’abstraction. Notre modèle offre trois moyens de structuration des spécifications. La structuration interne permet de définir les aspects de base des composants (dynamique et statique). La structuration externe permet de définir de façon unifiée différents types de compositions : tant l’intégration d’aspects que la composition concurrente de composants communicants. Une forme simple de structuration d’héritage permet de réutiliser les composants. Nous pensons qu’il est important, pour que les méthodes formelles soient réellement utilisées, qu’elles disposent d’une méthode associée. Dans cette optique, nous proposons une méthode pour la spécification mixte et structurée, applicable aux spécifications KORRIGAN ainsi qu’à d’autres formalismes. Enfin, nous proposons un atelier, ASK, dédié à la spécification mixte en KORRIGAN. Il intègre des mécanismes de vérification des spécifications KORRIGAN par traduction et de génération de code orienté objet

    Shell Scripting for Scientific Programming : the Python example

    No full text

    12 - SDL

    No full text
    corecore